home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / comm / amiex / ws_ae271.lha / WarpSearch_ae.doc < prev   
Encoding:
Text File  |  1997-07-18  |  7.3 KB  |  239 lines

  1. WarpSearch_BBS V2.7 Documentation
  2.  
  3.  
  4. Introduction
  5. ------------
  6. This is the AmiExpress version of WarpSearch.
  7. It uses the boyer-moore search algorithm implemented in assembler code.
  8. This algorithm is the fastest available.
  9.  
  10.  
  11. Revision History
  12. ----------------
  13. Features
  14. --------
  15. V1.0:
  16. -pattern matching
  17. -asynchonous I/O
  18. -backwards/forwards counting of filelists
  19. -highlightning
  20.  
  21. V2.0:
  22. -now real reverse search (search code / buffer loading / dir counting)
  23. -residentable
  24. -DMA optimized
  25. -prompts always behind complete descriptions
  26. -simple flagging, also "f file1.lha f file2.lha"
  27. -ndirs file is used to be s-express compatible if no ndirs tooltype exists
  28. -colors for the description output
  29. -configurable via tooltypes (of the WarpSearch executable) or WarpSearch.config file
  30.  tooltypes override file config
  31.  
  32. V2.1:
  33. -bugfixed V2.0
  34.  If there were escape codes in the text of a file description the line was
  35.  repeated in an infinite loop but you were able to quit the program at the
  36.  prompt. No memory trashes or similar occured. This is fixed now. A harmless
  37.  byte read from adress 0 in the shell version was wiped out too.
  38.  
  39. V2.3:
  40. -added prompts if no args at start specified in bbs version
  41. -speedup due to asm code improvement and faster resource allocations (unbelieveable but true)
  42. -wildcard problem fixed
  43. -help rewritten
  44.  
  45. V2.5
  46. -tag mode with scrolling
  47. -rewritten parse routine
  48. -some little fixes
  49.  
  50. V2.7
  51. -changed date to amigadate
  52. -faster code due to optimized initialisation of load buffers
  53. -more error checking
  54.  
  55. V2.7.1
  56. -bugfix for 36 nodes (only 10 nodes were supported before)
  57.  
  58. Installation
  59. ------------
  60. Copy "z.info" to "bbs:commands/bbscmd/".
  61. Change LOCATION to your full path of the WarpSearch executable.
  62. Adjust configuration if you like.
  63.  
  64.  
  65. Usage
  66. -----
  67.  
  68. V2.5 introduces standard amiga command line parsing
  69.  
  70. This way you can search for spaces. z " scoopex" a -
  71. (enclose the pattern with " if the pattern includes blanks)
  72.  
  73. If you want to search for a pattern including " you have to use an asterix
  74. (*) char to override the special meanings of ".
  75.  
  76. You can check how your pattern was parsed if you look at the last line of the
  77. search process:
  78. Displayed 7 descriptions that match the pattern  ".
  79.  
  80. In this example line " *"" was parsed to (space").
  81.  
  82. You have to add an asterix char (*) if you want to search for a pattern that
  83. looks like a command line switch, like "-", so you have to write
  84.  
  85. z *- a -  (or z -* a -)
  86.  
  87. instead of
  88.  
  89. z - a -
  90.  
  91. to search in all dirs reverse for the pattern "-".
  92.  
  93.  
  94. You can write the command line in any order; e.g.
  95.  
  96. z *- a -
  97.  
  98. and
  99.  
  100. z a - *-
  101.  
  102. and
  103.  
  104. z - a *-
  105.  
  106. and so on are equal.
  107.  
  108. Note, the above command line lets you search for all files new to old.
  109.  
  110.  
  111. Switches are the templates with the /S appended.
  112.  
  113. z /M,a=all/S,u=uldir/S,-=reverse/S,r=reverse/S,ns=nonstop/S,?=help/S
  114.  
  115. backwards compatible to /X z door:
  116.  
  117. Example usage:
  118. "z foo"      (searches in upload dir for "foo" forwards).
  119. "z foo r"    (searches in upload dir reverse).
  120.  
  121. "z foo 3 r"  (searches in dir3 reverse).
  122. "z foo a"    (searches from dir1 up for "foo").
  123.  
  124. "z foo a -"  (searches from upload dir down for "foo" and searches reverse).
  125. "z foo 2"    (searches in dir2 only for "foo").
  126.  
  127. Wildcards in pattern are allowed, like "z foo*bar" or "z warp*V1.0*"
  128. Use "z foo*bar 2 +" to search from dir2 upwards. Default is downwards search.
  129. The pattern must match an expression in one line.
  130. Patterns are not case sensitive. Only "*" is accepted as a wildcard and no
  131. other constructions like "#?","?" , which noone needs anyway in this application.
  132.  
  133. Use "z ?" for short help.
  134.  
  135. Known Bugs
  136. ----------
  137. In V2.5 FLAG_COLOR tooltype must be exactly 5 chars long.
  138.  
  139. Info
  140. ----
  141. Due to the boyer-moore algorithm the longer the pattern (w/o wildcards)
  142. the shorter the search time.
  143.  
  144. The complete filedescription including filename etc. is searched through.
  145. We, the authors, think that this magic code is the fastest search routine ever
  146. made for an /X like filelist, because the 100% assembler boyer-moore search
  147. routine with pattern matching and highlightning is optimized for cpu cycles by
  148. hand, some magic is done for splitted filedescriptions, asychronous I/O
  149. optimized even for 68040. (cache flushing problem)
  150.  
  151. On our system the bottleneck is the Fast-SCSI-II Baracuda drive with a
  152. Fast-SCSI-II CyberSCSI Controller that does 7MB/s, and the code is 3 times
  153. faster if the filelist is in RAM with 50MB/s burst.
  154.  
  155. The maximum length of a description line allowed is 1000 chars. Since /X
  156. allows 80 chars/line as maximum we think this is no bug. If a line is longer
  157. than 1000 chars enforcer hits may occur. A check for line length would slow
  158. down the code significantly. That`s why we don`t do it.
  159.  
  160. For those who are interested, a short explanation of what "double buffered
  161. async I/O" means:
  162. Due to the coolness of the Amiga, SCSI is the most accepted standard on this
  163. platform (..well if we dont consider 4000 desktops..). SCSI has the ability
  164. to transfer data per DMA, thus meaning without using the processor. This is
  165. were async I/O comes in. A program using double buffered async I/O lets the
  166. filesystem first fill up one buffer, then sends the request to fill up the
  167. second buffer, and while the HD is busy transfering data to the 2nd buffer the
  168. processor is free to do its work on the first one. As you can imagine this
  169. technique dramatically speeds up the whole process.
  170.  
  171. Shell version now included.
  172.  
  173. A pseudo door that calls the door to be debugged is now developed. This way you
  174. can use SAS/C`s debugger cpr easily. If you need it just ask.
  175.  
  176. Send your suggestions or bug reports to crayor@cs.tu-berlin.de or
  177. dres@cs.tu-berlin.de.
  178.  
  179. Reverse search is quite slow, because the seeking in the filelist (which is
  180. even asynchronous) takes 87% of the execution time on Crayor`s system (060&
  181. CyberScsi). Use a cache program like DynamiCache V1.02 by Christopher A. Wolf
  182. with big memory values to make reverse search as fast as forwards search.
  183.  
  184. Maybe a scsi RAID system could be a good solution for reverse searching too,
  185. if you have one please contact Crayor!
  186.  
  187. For the Amiga a "mini raid system" for 2 equal drives is available. If you have
  188. this please contact Crayor. It seems to be software transparent and looks like
  189. just one scsi drive as I was told. This should almost double average transfer
  190. speeds.
  191.  
  192. Memory Requirements
  193. -------------------
  194. Approx. 2*blocksize*100 bytes which is about 100k for load buffers plus 20k
  195. for print buffer plus code size
  196. (blocksize is usually 512 bytes)
  197.  
  198. AmiExpress3.38 needs approx. 200k to run it.
  199.  
  200. For the screen buffer for tag mode add some k. They are needed even if you
  201. don`t use tag mode.
  202.  
  203. Currently the last 150 screen lines are buffered for tag mode.
  204.  
  205. Greetz
  206. ------
  207. Some hellos to the following guys:
  208.  
  209. "Ibo"  - with his always busy or down BBS, so that we weren`t able to abuse
  210.          his BBS for beta testing ;)
  211.          Thx for reporting a little bug.
  212.  
  213. Hijack - thx for the cool name of this door m8. (yep! "WarpSearch" actually was
  214.          his idea)
  215.  
  216. SCSI   - for his help on using iwan.device and other help
  217.  
  218. Amok   - for the address of Mr.F
  219.  
  220. STC    - for the competition of coding the fastest search code for /X filelists
  221.  
  222. Hydra  - for still developing hbbs
  223.  
  224. Dave Haynie
  225.        - for answering my several emails
  226.  
  227. The Baron (Mats N.)
  228.        - for reporting the (minor!?) esc-code bug in V2.0 that leeded to V2.1
  229.  
  230. shadower (M. R. T.)
  231.        - for some good suggestions for V2.1
  232.  
  233. Ted    - for the Warp animation!
  234.  
  235.  
  236. Looking for good beta testers!
  237.  
  238. Check the aminet for the MUI and shell versions in /comm/amiex !!
  239.